package com.scale.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Web配置类 - 处理CORS和静态资源
 * @author crp
 * @since 2025-09-28
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
    
    /**
     * 配置CORS跨域
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true)
                .maxAge(3600);
        
        // 特别为音频文件配置CORS
        registry.addMapping("/voice/**")
                .allowedOriginPatterns("*")
                .allowedMethods("GET", "HEAD", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(false)  // 音频文件不需要凭证
                .maxAge(86400);  // 24小时缓存
    }
    
    /**
     * 配置静态资源处理
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 🔧 配置语音文件访问路径（使用绝对路径映射）
        registry.addResourceHandler("/voice/**")
                .addResourceLocations("file:./voice/")  // 修改为相对于项目根目录
                .setCachePeriod(86400);  // 24小时缓存
        
        System.out.println("✅ 静态资源映射配置: /voice/** -> file:./voice/");
    }
}